package com.data.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.iSea.ActivoJDBC;
import com.iSea.BusquedaActivoBean;
import com.iSea.DescripcionElementoAreaJDBC;
import com.iSea.DescripcionElementoJDBC;
import com.iSea.DescripcionElementoPuntualJDBC;
import com.iSea.EstadoJDBC;
import com.iSea.FabricanteJDBC;
import com.iSea.GarantiaJDBC;
import com.iSea.GruposJDBC;
import com.iSea.InflacionJDBC;
import com.iSea.InventariadoJDBC;
import com.iSea.ModelosJDBC;
import com.iSea.PropietarioJDBC;
import com.iSea.UsuarioJDBC;
import com.iSea.ValoracionTotalJDBC;
import com.iSea.ValoracionesJDBC;
import com.iSea.TiposJDBC;
import com.iSea.RegimenJDBC;
import com.iSea.SegurosJDBC;

public class JDBCBase {
	
	//private static final String ip = "10.211.22.193"; //MANU
	private static final String ip = "10.196.129.235"; //ANDREA
	//private static final String ip = "127.0.0.1"; //LOCALHOST
	
	public static List<ActivoJDBC> getActivos() throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<ActivoJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM ACTIVOS");
			
			while (rs.next()){
				ActivoJDBC dato = new ActivoJDBC();
				dato.setId(rs.getInt("ID_ACTIVO"));
				dato.setIdPropietarios(rs.getInt("ID_PROPIETARIO"));
				dato.setIdFabricante(rs.getInt("ID_FABRICANTE"));
				dato.setIdGrupo(rs.getInt("ID_GRUPO"));
				dato.setIdValoracion(rs.getInt("ID_VALORACION"));
				dato.setIdModelo(rs.getInt("ID_MODELO"));
				dato.setIdGarantia(rs.getInt("ID_GARANTIA"));
				dato.setValorCompra(rs.getString("VALOR_COMPRA"));
				dato.setIdValoracionRecomendada(rs.getInt("ID_VALORACION_RECOMENDADA"));
				dato.setTerceros(rs.getString("TERCEROS"));
				dato.setFechaAlta(rs.getString("FECHA_ALTA"));
				dato.setFechaReposicion(rs.getString("FECHA_REPOSICION"));
				dato.setFechaUltimoModelo(rs.getString("FECHA_ULT_MOD"));
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static List<ActivoJDBC> getActivoByName(String nombre) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<ActivoJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM ACTIVOS where nombre = "+ nombre);
			
			while (rs.next()){
				ActivoJDBC dato = new ActivoJDBC();
				dato.setId(rs.getInt("ID_ACTIVO"));
				dato.setIdPropietarios(rs.getInt("ID_PROPIETARIO"));
				dato.setIdFabricante(rs.getInt("ID_FABRICANTE"));
				dato.setIdGrupo(rs.getInt("ID_GRUPO"));
				dato.setIdValoracion(rs.getInt("ID_VALORACION"));
				dato.setIdModelo(rs.getInt("ID_MODELO"));
				dato.setIdGarantia(rs.getInt("ID_GARANTIA"));
				dato.setValorCompra(rs.getString("VALOR_COMPRA"));
				dato.setIdValoracionRecomendada(rs.getInt("ID_VALORACION_RECOMENDADA"));
				dato.setTerceros(rs.getString("TERCEROS"));
				dato.setFechaAlta(rs.getString("FECHA_ALTA"));
				dato.setFechaReposicion(rs.getString("FECHA_REPOSICION"));
				dato.setFechaUltimoModelo(rs.getString("FECHA_ULT_MOD"));
				
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}

	public static DescripcionElementoJDBC getActivoDescripcion(int modelo) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		DescripcionElementoJDBC result=null;
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM descripcion_elemento where id_modelo = "+ modelo);
			
			while (rs.next()){
				DescripcionElementoJDBC descripcion = new DescripcionElementoJDBC();
				descripcion.setId_modelo(rs.getInt("ID_MODELO"));
				descripcion.setSeSalida(rs.getString("SESALIDA"));
				descripcion.setSeLlegada(rs.getString("SELLEGADA"));
				descripcion.setAmortizacion_anual(rs.getString("AMORTIZACION_ANUAL"));
				descripcion.setCalibre_fase(rs.getString("CALIBRE_FASE"));
				descripcion.setCalibre_pantalla(rs.getString("CALIBRE_PANTALLA"));
				descripcion.setCalibre_aislamiento(rs.getString("CALIBRE_AISLAMIENTO"));
				descripcion.setCod_asignacion(rs.getString("COD_ASIGNACION"));
				descripcion.setCod_ele_soporte(rs.getString("COD_ELEM_SOPORTE"));
				descripcion.setDescripcion(rs.getString("DESCRIPCION"));
				descripcion.setId_descripcion(rs.getInt("ID_DESCRIPCION"));
				descripcion.setId_estado(rs.getInt("ID_ESTADO"));
				descripcion.setLim_termico(rs.getString("LIM_TERMICO"));
				descripcion.setLim_termico_corto(rs.getString("LIM_TERMICO_CORTO"));
				descripcion.setLong_medi(rs.getString("LONG_MEDI"));
				descripcion.setLong_reserva(rs.getString("LONG_RESERVA"));
				descripcion.setMaterial_aislamiento(rs.getString("MATERIAL_AISLAMIENTO"));
				descripcion.setMaterial_fase(rs.getString("MATERIAL_FASE"));
				descripcion.setMaterial_pantalla(rs.getString("MATERIAL_PANTALLA"));
				descripcion.setRegulacion(rs.getString("REGULACION"));
				descripcion.setTopologia(rs.getString("TOPOLOGIA"));
				descripcion.setCircuitos(rs.getString("CIRCUITOS"));
				descripcion.setValor_actual(rs.getString("VALOR_ACTUAL"));
				descripcion.setValor_intalacion(rs.getString("VALOR_INSTALACION"));
				descripcion.setValor_reposicion(rs.getString("VALOR_REPOSICION"));
				descripcion.setVoltaje(rs.getString("VOLTAKE"));
				descripcion.setVida_util(rs.getString("VIDAUTIL"));
				descripcion.setFlujo_monetario(rs.getString("FLUJO_MONETARIO"));
				descripcion.setCoste_operacional(rs.getString("COSTE_OPERACIONAL"));
				descripcion.setEstado(getEstadoById(descripcion.getId_estado()));
				result=descripcion;
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return result;
	}

	public static List<ActivoJDBC> getActivosByModelo(Integer modelo) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<ActivoJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM ACTIVOS  where id_modelo = "+ modelo);
			
			while (rs.next()){
				ActivoJDBC dato = new ActivoJDBC();
				dato.setId(rs.getInt("ID_ACTIVO"));
				dato.setNombreActivo(rs.getString("NOMBRE_ACTIVO"));
				/*
				dato.setIdPropietarios(rs.getInt("ID_PROPIETARIO"));
				dato.setIdFabricante(rs.getInt("ID_FABRICANTE"));
				dato.setIdGrupo(rs.getInt("ID_GRUPO"));
				dato.setIdValoracion(rs.getInt("ID_VALORACION"));
				dato.setIdModelo(rs.getInt("ID_MODELO"));
				dato.setIdGarantia(rs.getInt("ID_GARANTIA"));
				dato.setValorCompra(rs.getString("VALOR_COMPRA"));
				dato.setIdValoracionRecomendada(rs.getInt("ID_VALORACION_RECOMENDADA"));
				dato.setTerceros(rs.getString("TERCEROS"));
				dato.setFechaAlta(rs.getString("FECHA_ALTA"));
				dato.setFechaReposicion(rs.getString("FECHA_REPOSICION"));
				dato.setFechaUltimoModelo(rs.getString("FECHA_ULT_MOD"));
				dato.setIdElemento(rs.getString("ID_ELEMENTO"));
				dato.setDenominacion(rs.getString("DENOMINACION"));
				dato.setTramo(rs.getString("TRAMO"));
				dato.setArea(rs.getInt("AREA"));
				dato.setSector(rs.getInt("SECTOR"));
				dato.setIdEstado(rs.getInt("ID_ESTADO"));
				dato.setIdRegimen(rs.getInt("ID_REGIMEN"));
				dato.setIdSeguro(rs.getInt("ID_SEGURO"));
				dato.setDescripcion(getActivoDescripcion(dato.getIdModelo()));
				dato.setModelo(getModelosById(dato.getIdModelo()));
				dato.setPropietario(getPropietariosById(dato.getIdPropietarios()));
				dato.setGrupo(getGruposById(dato.getIdGrupo()));
				dato.setEstado(getEstadoById(dato.getIdEstado()));
				dato.setRegimen(getRegimenesById(dato.getIdRegimen()));
				dato.setValoracionActual(getValoracionesById(dato.getIdValoracion()));
				dato.setValoracionRecomendada(getValoracionesById(dato.getIdValoracionRecomendada()));
				dato.setSeguro(getSegurosById(dato.getIdSeguro()));
				dato.setGarantia(getGarantiasById(dato.getIdGarantia()));
				dato.setFabricante(getFabricantesById(dato.getIdFabricante()));
				dato.getDescripcion().setActivo(dato);*/
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static ActivoJDBC getActivoById(int id) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		ActivoJDBC activo = null;
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM ACTIVOS  where id_activo = "+ id);
			
			while (rs.next()){
				activo = new ActivoJDBC();
				activo.setId(rs.getInt("ID_ACTIVO"));
				activo.setNombreActivo(rs.getString("NOMBRE_ACTIVO"));
				activo.setIdPropietarios(rs.getInt("ID_PROPIETARIO"));
				activo.setIdFabricante(rs.getInt("ID_FABRICANTE"));
				activo.setIdGrupo(rs.getInt("ID_GRUPO"));
				activo.setIdValoracion(rs.getInt("ID_VALORACION"));
				activo.setIdModelo(rs.getInt("ID_MODELO"));
				activo.setIdGarantia(rs.getInt("ID_GARANTIA"));
				activo.setValorCompra(rs.getString("VALOR_COMPRA"));
				activo.setIdValoracionRecomendada(rs.getInt("ID_VALORACION_RECOMENDADA"));
				activo.setTerceros(rs.getString("TERCEROS"));
				activo.setFechaAlta(rs.getString("FECHA_ALTA"));
				activo.setFechaReposicion(rs.getString("FECHA_REPOSICION"));
				activo.setFechaUltimoModelo(rs.getString("FECHA_ULT_MOD"));
				activo.setFechaCompra(rs.getString("FECHA_COMPRA"));
				activo.setIdElemento(rs.getString("ID_ELEMENTO"));
				activo.setDenominacion(rs.getString("DENOMINACION"));
				activo.setTramo(rs.getString("TRAMO"));
				activo.setArea(rs.getInt("AREA"));
				activo.setSector(rs.getInt("SECTOR"));
				activo.setIdEstado(rs.getInt("ID_ESTADO"));
				activo.setIdRegimen(rs.getInt("ID_REGIMEN"));
				activo.setIdSeguro(rs.getInt("ID_SEGURO"));
				activo.setDireccion(rs.getString("DIRECCION"));
				
				activo.setModelo(getModelosById(activo.getIdModelo()));
				activo.setPropietario(getPropietariosById(activo.getIdPropietarios()));
				activo.setGrupo(getGruposById(activo.getIdGrupo()));
				activo.setEstado(getEstadoById(activo.getIdEstado()));
				activo.setRegimen(getRegimenesById(activo.getIdRegimen()));
				activo.setValoracionActual(getValoracionesById(activo.getIdValoracion()));
				activo.setValoracionRecomendada(getValoracionesById(activo.getIdValoracionRecomendada()));
				activo.setSeguro(getSegurosById(activo.getIdSeguro()));
				activo.setGarantia(getGarantiasById(activo.getIdGarantia()));
				activo.setFabricante(getFabricantesById(activo.getIdFabricante()));
				
				int modeloDetalle = new Integer(activo.getModelo().getId());
				switch (modeloDetalle) {
				
				case 1:case 2:case 5:case 6:case 7:
					//Detalle puntual
					activo.setDescripcionPuntual(getDescripcionPuntual(activo.getIdModelo()));
				break;
				
				case 3:case 4:
					//Detalle lineal
					activo.setDescripcionLineal(getDescripcionLineal(activo.getIdModelo()));
				break;
				
				case 8:
					activo.setDescripcionArea(getDescripcionArea(activo.getIdModelo()));
				break;
				}
				//Descipcion
				
				
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return activo;
	}
	
	public static DescripcionElementoJDBC getDescripcionLineal(int modelo) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		DescripcionElementoJDBC result=null;
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM descripcion_elemento where id_modelo = "+ modelo);
			
			while (rs.next()){
				DescripcionElementoJDBC descripcion = new DescripcionElementoJDBC();
				descripcion.setId_modelo(rs.getInt("ID_MODELO"));
				descripcion.setSeSalida(rs.getString("SESALIDA"));
				descripcion.setSeLlegada(rs.getString("SELLEGADA"));
				descripcion.setAmortizacion_anual(rs.getString("AMORTIZACION_ANUAL"));
				descripcion.setCalibre_fase(rs.getString("CALIBRE_FASE"));
				descripcion.setCalibre_pantalla(rs.getString("CALIBRE_PANTALLA"));
				descripcion.setCalibre_aislamiento(rs.getString("CALIBRE_AISLAMIENTO"));
				descripcion.setCod_asignacion(rs.getString("COD_ASIGNACION"));
				descripcion.setCod_ele_soporte(rs.getString("COD_ELEM_SOPORTE"));
				descripcion.setDescripcion(rs.getString("DESCRIPCION"));
				descripcion.setId_descripcion(rs.getInt("ID_DESCRIPCION"));
				descripcion.setId_estado(rs.getInt("ID_ESTADO"));
				descripcion.setLim_termico(rs.getString("LIM_TERMICO"));
				descripcion.setLim_termico_corto(rs.getString("LIM_TERMICO_CORTO"));
				descripcion.setLong_medi(rs.getString("LONG_MEDI"));
				descripcion.setLong_reserva(rs.getString("LONG_RESERVA"));
				descripcion.setMaterial_aislamiento(rs.getString("MATERIAL_AISLAMIENTO"));
				descripcion.setMaterial_fase(rs.getString("MATERIAL_FASE"));
				descripcion.setMaterial_pantalla(rs.getString("MATERIAL_PANTALLA"));
				descripcion.setRegulacion(rs.getString("REGULACION"));
				descripcion.setTopologia(rs.getString("TOPOLOGIA"));
				descripcion.setCircuitos(rs.getString("CIRCUITOS"));
				descripcion.setValor_actual(rs.getString("VALOR_ACTUAL"));
				descripcion.setValor_intalacion(rs.getString("VALOR_INSTALACION"));
				descripcion.setValor_reposicion(rs.getString("VALOR_REPOSICION"));
				descripcion.setVoltaje(rs.getString("VOLTAKE"));
				descripcion.setVida_util(rs.getString("VIDAUTIL"));
				descripcion.setFlujo_monetario(rs.getString("FLUJO_MONETARIO"));
				descripcion.setCoste_operacional(rs.getString("COSTE_OPERACIONAL"));
				descripcion.setEstado(getEstadoById(descripcion.getId_estado()));
				result=descripcion;
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return result;
	}
	
	public static DescripcionElementoPuntualJDBC getDescripcionPuntual(int idModelo) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		DescripcionElementoPuntualJDBC descripcion= new DescripcionElementoPuntualJDBC();
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT D.*,ESTADO.NOMBRE FROM DESCRIPCION_ELEMENTO_PUNTUAL D,ESTADO " +
					"where D.ID_ESTADO = ESTADO.ID_ESTADO AND D.id_modelo = "+idModelo);
			
			while (rs.next()){
				descripcion.setAltura(rs.getString("ALTURA"));
				descripcion.setAmortizacionAnual(rs.getString("AMORTIZACION_ANUAL"));
				descripcion.setAncho(rs.getString("ANCHO"));
				descripcion.setCaja(rs.getString("CAJA"));
				descripcion.setCimentacion(rs.getString("CIMENTACION"));
				descripcion.setCodAsignacion(rs.getString("COD_ASIGNACION"));
				descripcion.setCodElemSoporte(rs.getString("COD_ELEM_SOPORTE"));
				descripcion.setConexiones(rs.getString("CONEXIONES"));
				descripcion.setConicidad(rs.getString("CONICIDAD"));
				descripcion.setDescripcion(rs.getString("DESCRIPCION"));
				descripcion.setDetalleCaja(rs.getString("DETALLE_CAJA"));
				descripcion.setDetalleConex(rs.getString("DETALLE_CONEX"));
				descripcion.setDetalleEmpalme(rs.getString("DETALLE_EMPALME"));
				descripcion.setDetalleHerraje(rs.getString("DETALLE_HERRAJE"));
				descripcion.setEmpalmes(rs.getString("EMPALMES"));
				descripcion.setEstado(new EstadoJDBC(rs.getString("NOMBRE"), rs.getInt("ID_DESCRIPCION")));
				descripcion.setFrecuencia(rs.getString("FRECUENCIA"));
				descripcion.setHerrajes(rs.getString("HERRAJES"));
				descripcion.setId_descripcion(rs.getInt("ID_DESCRIPCION"));
				descripcion.setId_estado(rs.getInt("ID_ESTADO"));
				descripcion.setId_modelo(rs.getInt("ID_MODELO"));
				descripcion.setMaterial(rs.getString("MATERIAL"));
				descripcion.setSeccionBase(rs.getString("SECCION_BASE"));
				descripcion.setTipoSoporte(rs.getString("TIPOSOPORTE"));
				descripcion.setToleranciaBase(rs.getString("TOLERANCIA_BASE"));
				descripcion.setToleranciaLong(rs.getString("TOLERANCIA_LONG"));
				descripcion.setTopologia(rs.getString("TOPOLOGIA"));
				descripcion.setValorActual(rs.getString("VALOR_ACTUAL"));
				descripcion.setValorInstalacion(rs.getString("VALOR_INSTALACION"));
				descripcion.setValorReposicion(rs.getString("VALOR_REPOSICION"));
				descripcion.setVida_util(rs.getString("VIDAUTIL"));
				descripcion.setVoltaje(rs.getString("VOLTAJE"));
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return descripcion;
	}
	
	public static DescripcionElementoAreaJDBC getDescripcionArea(int idModelo) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		DescripcionElementoAreaJDBC descripcion = new DescripcionElementoAreaJDBC();;
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT D.*,ESTADO.NOMBRE FROM DESCRIPCION_ELEMENTO_AREA D,ESTADO " +
					"where D.ID_ESTADO = ESTADO.ID_ESTADO AND D.id_modelo = "+idModelo);
			
			while (rs.next()){
				descripcion.setAccesibilidad(rs.getString("ACCESIBILIDAD"));
				descripcion.setAltura(rs.getString("ALTURA"));
				descripcion.setAmortizacionAnual(rs.getString("AMORTIZACION_ANUAL"));
				descripcion.setArea(rs.getString("AREA"));
				descripcion.setCerradura(rs.getString("CERRADURA"));
				descripcion.setCimentacion(rs.getString("CIMENTACION"));
				descripcion.setCodigoAsignacion(rs.getString("COD_ASIGNACION"));
				descripcion.setDescripcion(rs.getString("DESCRIPCION"));
				descripcion.setDetalleElementosInteriores(rs.getString("DETALLE_ELEM_INT"));
				descripcion.setElementosInteriores(rs.getString("ELEMENTOS_INT"));
				descripcion.setEstado(new EstadoJDBC(rs.getString("NOMBRE"), rs.getInt("ID_DESCRIPCION")));
				descripcion.setIdDescripcion(rs.getInt("ID_DESCRIPCION"));
				descripcion.setIdEstado(rs.getInt("ID_ESTADO"));
				descripcion.setIdModelo(rs.getInt("ID_MODELO"));
				descripcion.setMaterial(rs.getString("MATERIAL"));
				descripcion.setModulos(rs.getString("MODULOS"));
				descripcion.setPlanoConstructivo(rs.getString("PLANO_CONST"));
				descripcion.setRestriccionAcceso(rs.getString("RESTRICCION_ACCESO"));
				descripcion.setSituacionVia(rs.getString("SITUACION_VIA"));
				descripcion.setSuperficieExterior(rs.getString("SUPERFICIE_EXT"));
				descripcion.setTipoCerramiento(rs.getString("TIPO_CERRAMIENTO"));
				descripcion.setTipoCimentacion(rs.getString("TIPO_CIMENTACION"));
				descripcion.setTipoRestriccion(rs.getString("TIPO_RESTRICCION"));
				descripcion.setTopologia(rs.getString("TOPOLOGIA"));
				descripcion.setUbicacion(rs.getString("UBICACION"));
				descripcion.setValorInstalacion(rs.getString("VALOR_INSTALACION"));
				descripcion.setValorActual(rs.getString("VALOR_ACTUAL"));
				descripcion.setValorReposicion(rs.getString("VALOR_REPOSICION"));
				descripcion.setVidaUtil(rs.getString("VIDAUTIL"));
				
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return descripcion;
	}
	
	public static List<ActivoJDBC> buscarActivo(BusquedaActivoBean busqueda) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<ActivoJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			String query = ("SELECT ACTIVOS.*, MODELOS.NOMBRE AS NOMBRE_MODELO FROM ACTIVOS, MODELOS WHERE  " +
					"ACTIVOS.ID_MODELO = MODELOS.ID_MODELO");
			
			
				query+=" AND ACTIVOS.NOMBRE_ACTIVO LIKE '%"+busqueda.getNombre().toUpperCase()+"%'";
			
			if(busqueda.getModelo() != "")
				query+=" AND ACTIVOS.ID_MODELO = '"+busqueda.getModelo()+"'";
			
			if(busqueda.getTipoAct() != "")
			{
				int idModelo = new Integer(busqueda.getTipoAct());
				switch(idModelo)
				{
				case 1: 
					//PUNTUAL
					query+=" AND (ACTIVOS.ID_MODELO = 1 OR ACTIVOS.ID_MODELO = 2 OR ACTIVOS.ID_MODELO =5 OR ACTIVOS.ID_MODELO = 6 OR ACTIVOS.ID_MODELO =7) ";
				break;
				case 2:
					//LINEAL
				query+=" AND (ACTIVOS.ID_MODELO = 3 OR ACTIVOS.ID_MODELO = 4) ";
				break;
				case 3:
					//AREA
					query+=" AND (ACTIVOS.ID_MODELO = 8) ";
					break;
				}
				
			}
			
			if(busqueda.getTerceros()!= "")
				query+=" AND ACTIVOS.TERCEROS = '"+busqueda.getTerceros()+"'";
			
			if(busqueda.getArea()!= "")
				query+=" AND ACTIVOS.AREA = '"+busqueda.getArea()+"'";
			
			if( (busqueda.getvMinimo()!= "") && (busqueda.getvMaximo() !="")){
				query+=" AND VALOR_COMPRA BETWEEN '"+busqueda.getvMinimo()+"' AND '"+busqueda.getvMaximo()+"'";	
			}
			if(busqueda.getFecha()!= "")
				query+=" AND TO_CHAR(ACTIVOS.FECHA_ALTA, 'dd/mm/yyyy') = '"+busqueda.getFecha()+"'";
			
			//System.out.println(query);
			rs = stmt.executeQuery(query);
			
			while (rs.next()){
				ActivoJDBC dato = new ActivoJDBC();
				dato.setId(rs.getInt("ID_ACTIVO"));
				dato.setNombreActivo(rs.getString("NOMBRE_ACTIVO"));
				dato.setIdModelo(rs.getInt("ID_MODELO"));
				dato.setTerceros(rs.getString("TERCEROS"));
				dato.setArea(rs.getInt("AREA"));
				dato.setSector(rs.getInt("SECTOR"));
				dato.setTramo(rs.getString("TRAMO"));
				dato.setFechaAlta(rs.getString("FECHA_ALTA"));
//				dato.setIdTipo(rs.getInt("TIPO_ACTIVO"));
//				dato.setIdPropietarios(rs.getInt("ID_PROPIETARIO"));
//				dato.setIdFabricante(rs.getInt("ID_FABRICANTE"));
//				dato.setIdGrupo(rs.getInt("ID_GRUPO"));
//				dato.setIdValoracion(rs.getInt("ID_VALORACION"));
//				dato.setIdGarantia(rs.getInt("ID_GARANTIA"));
				dato.setValorCompra(rs.getString("VALOR_COMPRA"));
//				dato.setIdValoracionRecomendada(rs.getInt("ID_VALORACION_RECOMENDADA"));
//				dato.setFechaReposicion(rs.getString("FECHA_REPOSICION"));
//				dato.setFechaUltimoModelo(rs.getString("FECHA_ULT_MOD"));
				ModelosJDBC modelo = new ModelosJDBC();
				modelo.setNombre(rs.getString("NOMBRE_MODELO"));
				dato.setModelo(modelo);
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static List<ActivoJDBC> buscarActivo_Area_Modelo(String area, String tipoActivo) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<ActivoJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			String query = ("SELECT ACTIVOS.*,MODELOS.NOMBRE as NOMBRE_MODELO FROM ACTIVOS, MODELOS "+
						    "WHERE ACTIVOS.ID_MODELO = MODELOS.ID_MODELO "+
					        "AND ACTIVOS.AREA = "+ area + " AND ACTIVOS.ID_MODELO = "+tipoActivo);
			
			
			rs = stmt.executeQuery(query);
			
			while (rs.next()){
				ActivoJDBC dato = new ActivoJDBC();
				dato.setId(rs.getInt("ID_ACTIVO"));
				dato.setNombreActivo(rs.getString("NOMBRE_ACTIVO"));
				dato.setIdModelo(rs.getInt("ID_MODELO"));
				dato.setTerceros(rs.getString("TERCEROS"));
				dato.setArea(rs.getInt("AREA"));
				dato.setSector(rs.getInt("SECTOR"));
				dato.setTramo(rs.getString("TRAMO"));
				dato.setFechaAlta(rs.getString("FECHA_ALTA"));
//				dato.setIdPropietarios(rs.getInt("ID_PROPIETARIO"));
//				dato.setIdFabricante(rs.getInt("ID_FABRICANTE"));
//				dato.setIdGrupo(rs.getInt("ID_GRUPO"));
//				dato.setIdValoracion(rs.getInt("ID_VALORACION"));
//				dato.setIdGarantia(rs.getInt("ID_GARANTIA"));
				dato.setValorCompra(rs.getString("VALOR_COMPRA"));
//				dato.setIdValoracionRecomendada(rs.getInt("ID_VALORACION_RECOMENDADA"));
//				dato.setFechaReposicion(rs.getString("FECHA_REPOSICION"));
//				dato.setFechaUltimoModelo(rs.getString("FECHA_ULT_MOD"));
				ModelosJDBC modelo = new ModelosJDBC();
				modelo.setNombre(rs.getString("NOMBRE_MODELO"));
				dato.setModelo(modelo);
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static List<ActivoJDBC> buscarActivoDireccion(String direccion) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<ActivoJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			String query = ("SELECT ACTIVOS.*, MODELOS.NOMBRE AS NOMBRE_MODELO FROM ACTIVOS, MODELOS WHERE  " +
					"ACTIVOS.ID_MODELO = MODELOS.ID_MODELO AND ACTIVOS.DIRECCION LIKE '%"+direccion.toUpperCase()+"%'");
			
			rs = stmt.executeQuery(query);
			
			while (rs.next()){
				ActivoJDBC dato = new ActivoJDBC();
				dato.setId(rs.getInt("ID_ACTIVO"));
				dato.setNombreActivo(rs.getString("NOMBRE_ACTIVO"));
				dato.setIdModelo(rs.getInt("ID_MODELO"));
				dato.setTerceros(rs.getString("TERCEROS"));
				dato.setArea(rs.getInt("AREA"));
				dato.setSector(rs.getInt("SECTOR"));
				dato.setTramo(rs.getString("TRAMO"));
				dato.setFechaAlta(rs.getString("FECHA_ALTA"));
				dato.setValorCompra(rs.getString("VALOR_COMPRA"));
				dato.setDireccion(rs.getString("DIRECCION").toLowerCase());
				ModelosJDBC modelo = new ModelosJDBC();
				modelo.setNombre(rs.getString("NOMBRE_MODELO"));
				dato.setModelo(modelo);
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	
	public static List<FabricanteJDBC> getFabricantes() throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<FabricanteJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM FABRICANTE");
			
			while (rs.next()){
				FabricanteJDBC dato = new FabricanteJDBC();
				dato.setId(rs.getInt("ID_FABRICANTE"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static FabricanteJDBC getFabricantesById(int fabricante) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		FabricanteJDBC lista = new FabricanteJDBC();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM FABRICANTE where id_fabricante="+fabricante);
			
			while (rs.next()){
				FabricanteJDBC dato = new FabricanteJDBC();
				dato.setId(rs.getInt("ID_FABRICANTE"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista=dato;
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static List<EstadoJDBC> getEstados() throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<EstadoJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM ESTADO");
			
			while (rs.next()){
				EstadoJDBC dato = new EstadoJDBC();
				dato.setId(rs.getInt("ID_ESTADO"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static EstadoJDBC getEstadoById(int estado) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		EstadoJDBC lista = new EstadoJDBC();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM ESTADO where id_estado="+estado);
			
			while (rs.next()){
				EstadoJDBC dato = new EstadoJDBC();
				dato.setId(rs.getInt("ID_ESTADO"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista= dato;
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static List<GarantiaJDBC> getGarantias() throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<GarantiaJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM GARANTIAS");
			
			while (rs.next()){
				GarantiaJDBC dato = new GarantiaJDBC();
				dato.setId(rs.getInt("ID_GARANTIA"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static  GarantiaJDBC getGarantiasById(int garantia) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		GarantiaJDBC lista = new GarantiaJDBC();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM GARANTIAS where id_garantia="+garantia);
			
			while (rs.next()){
				GarantiaJDBC dato = new GarantiaJDBC();
				dato.setId(rs.getInt("ID_GARANTIA"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista=dato;
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static List<GruposJDBC> getGrupos() throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<GruposJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM GRUPOS");
			
			while (rs.next()){
				GruposJDBC dato = new GruposJDBC();
				dato.setId(rs.getInt("ID_GRUPO"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static GruposJDBC getGruposById(int grupo) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		GruposJDBC lista = new GruposJDBC();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM GRUPOS where id_grupo="+grupo);
			
			while (rs.next()){
				GruposJDBC dato = new GruposJDBC();
				dato.setId(rs.getInt("ID_GRUPO"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista=dato;
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static List<ModelosJDBC> getModelos() throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<ModelosJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM MODELOS");
			
			while (rs.next()){
				ModelosJDBC dato = new ModelosJDBC();
				dato.setId(rs.getInt("ID_MODELO"));
				dato.setIdGrupo(rs.getInt("ID_GRUPO"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static ModelosJDBC getModelosById(int idModelo) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		ModelosJDBC lista = new ModelosJDBC();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM MODELOS where id_modelo="+idModelo);
			
			while (rs.next()){
				ModelosJDBC dato = new ModelosJDBC();
				dato.setId(rs.getInt("ID_MODELO"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista=dato;
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static List<PropietarioJDBC> getPropietarios() throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<PropietarioJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM PROPIETARIOS");
			
			while (rs.next()){
				PropietarioJDBC p = new PropietarioJDBC();
				p.setId(rs.getInt("ID_PROPIETARIO"));
				p.setNombre(rs.getString("NOMBRE"));
				lista.add(p);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static List<RegimenJDBC> getRegimenes() throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<RegimenJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM REGIMEN");
			
			while (rs.next()){
				RegimenJDBC p = new RegimenJDBC();
				p.setId(rs.getInt("ID_REGIMEN"));
				p.setNombre(rs.getString("NOMBRE"));
				lista.add(p);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static RegimenJDBC getRegimenesById(int regimen) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		RegimenJDBC lista = new RegimenJDBC();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM REGIMEN where id_regimen="+regimen);
			
			while (rs.next()){
				RegimenJDBC p = new RegimenJDBC();
				p.setId(rs.getInt("ID_REGIMEN"));
				p.setNombre(rs.getString("NOMBRE"));
				lista=p;
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static PropietarioJDBC getPropietariosById(int propietario) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		PropietarioJDBC lista = new PropietarioJDBC();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM PROPIETARIOS where id_propietario="+propietario);
			
			while (rs.next()){
				PropietarioJDBC p = new PropietarioJDBC();
				p.setId(rs.getInt("ID_PROPIETARIO"));
				p.setNombre(rs.getString("NOMBRE"));
				lista=p;
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}

	public static List<ValoracionesJDBC> getValoraciones() throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<ValoracionesJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM VALORACIONES");
			
			while (rs.next()){
				ValoracionesJDBC dato = new ValoracionesJDBC();
				dato.setId(rs.getInt("ID_VALORACION"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static ValoracionesJDBC getValoracionesById(int valoracion) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		ValoracionesJDBC lista = new ValoracionesJDBC();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM VALORACIONES where id_valoracion="+valoracion);
			
			while (rs.next()){
				ValoracionesJDBC dato = new ValoracionesJDBC();
				dato.setId(rs.getInt("ID_VALORACION"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista=dato;
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static List<SegurosJDBC> getSeguros() throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<SegurosJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM SEGUROS");
			
			while (rs.next()){
				SegurosJDBC dato = new SegurosJDBC();
				dato.setId(rs.getInt("ID_SEGURO"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static SegurosJDBC getSegurosById(int seguro) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		SegurosJDBC lista = new SegurosJDBC();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM SEGUROS where id_seguro="+seguro);
			
			while (rs.next()){
				SegurosJDBC dato = new SegurosJDBC();
				dato.setId(rs.getInt("ID_SEGURO"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista=dato;
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static List<InflacionJDBC> getInflacion() throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<InflacionJDBC> lista = new ArrayList<InflacionJDBC>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM INFLACION" );
			
			while (rs.next()){	
				InflacionJDBC dato = new InflacionJDBC();
				dato.setId(rs.getInt("ID_INFLACION"));
				dato.setAnio(rs.getString("ANNO"));
				dato.setValor(rs.getString("VALOR"));
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static InflacionJDBC getInflacionByAnio(String anio) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		InflacionJDBC dato = null;
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM INFLACION where anno='"+anio+"'" );
			
			while (rs.next()){
				dato = new InflacionJDBC();
				dato.setId(rs.getInt("ID_INFLACION"));
				dato.setAnio(rs.getString("ANNO"));
				dato.setValor(rs.getString("VALOR"));
			}
			
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return dato;
	}
	
	public static void updateInflacion(String anio,String valor) throws SQLException {
		Connection con = null;
		
		
		con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
	
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			Statement stmt = con.createStatement();
		    

		    String updateString = "update INFLACION set VALOR = '"+ valor + "' where ANNO = '"+ anio+ "'";

		    stmt.executeQuery(updateString);
		    
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		
	}
	
	public static void updateActivoLineal(ActivoJDBC activo) throws SQLException {
		Connection con = null;
		
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
		
			
			Statement stmt = con.createStatement();
		    
			//CAMPOS DEL ACTIVO
			String updateString = "update activos set ID_FABRICANTE = "+ activo.getIdFabricante();
		    updateString+= ", id_estado="+activo.getIdEstado();
		    updateString+=", id_valoracion="+activo.getIdValoracion();
		    updateString+=", id_seguro="+activo.getIdSeguro()+", id_garantia="+activo.getIdGarantia();
		    updateString+=", terceros="+ activo.getTerceros()+" where id_activo="+activo.getId();
		    //MODIFICAMOS LOS DATOS DEL DESCRIPCION_ELEMENTO
		    String updateString2 = "update descripcion_elemento set SELLEGADA='"+activo.getDescripcion().getSeLlegada()+"'";
		    updateString2+=", long_medi='"+activo.getDescripcion().getLong_medi()+"'";
		    updateString2+=", long_reserva='"+activo.getDescripcion().getLong_reserva()+"'";
		    updateString2+=" where id_modelo="+activo.getIdModelo();
		    
		    stmt.executeQuery(updateString2);
		    stmt.executeQuery(updateString);
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		
	}
	
	public static boolean updateActivoPuntual(ActivoJDBC activo)throws SQLException{
		Connection con = null;
		Boolean resultado =false;
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
		    
			//CAMPOS DEL ACTIVO
			Integer aux=(Integer.valueOf(activo.getTerceros()));
			String updateString = "UPDATE ACTIVOS SET";
			updateString+=" id_valoracion="+activo.getIdValoracion();
			updateString+=", id_seguro="+activo.getIdSeguro();
			updateString+=", id_garantia="+activo.getIdGarantia();
			updateString+=", id_fabricante="+activo.getIdFabricante();
			updateString+=", terceros="+ aux;
			updateString+=", id_estado="+activo.getIdEstado();
			updateString+= " WHERE id_activo="+activo.getId();
		    //System.out.println(updateString);
		    stmt.executeQuery(updateString);
		    resultado = true;
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return resultado;
	}
	
	public static boolean updateActivoArea(ActivoJDBC activo)throws SQLException{
		Connection con = null;
		Boolean resultado =false;
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
		    
			//CAMPOS DEL ACTIVO
			Integer aux=(Integer.valueOf(activo.getTerceros()));
			String updateString = "UPDATE ACTIVOS SET";
			updateString+=" id_valoracion="+activo.getIdValoracion();
			updateString+=", id_seguro="+activo.getIdSeguro();
			updateString+=", id_garantia="+activo.getIdGarantia();
			updateString+=", id_fabricante="+activo.getIdFabricante();
			updateString+=", terceros="+ aux;
			updateString+=", id_estado="+activo.getIdEstado();
			updateString+= " WHERE id_activo="+activo.getId();
			//MODIFICAMOS LOS DATOS DEL DESCRIPCION_ELEMENTO
		    String updateString2 = "UPDATE descripcion_elemento_area set id_estado="+ activo.getIdEstado();
		    updateString2+=" where id_modelo="+activo.getIdModelo();
			
		    //System.out.println(updateString);
		    //System.out.println(updateString2);
		    
		    stmt.executeQuery(updateString);
		    stmt.executeQuery(updateString2);
		    resultado = true;
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return resultado;
	}
	
	public static void deleteActivo(int id) throws SQLException {
		Connection con = null;
		
		con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
	
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			Statement stmt = con.createStatement();
		    

		    String query = "DELETE FROM ACTIVOS WHERE ID_ACTIVO = "+ id;

		    stmt.executeQuery(query);
		    
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		
	}
	
	public static List<TiposJDBC> getTipos() throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<TiposJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM TIPO");
			
			while (rs.next()){
				TiposJDBC dato = new TiposJDBC();
				dato.setId(rs.getInt("ID_TIPO"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static TiposJDBC getTiposById(int tipo) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		TiposJDBC lista = new TiposJDBC();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM TIPO where id_tipo="+tipo);
			
			while (rs.next()){
				TiposJDBC dato = new TiposJDBC();
				dato.setId(rs.getInt("ID_TIPO"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista=dato;
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace(); 
		}
		catch (Exception e) {
			e.printStackTrace(); 
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static List<RegimenJDBC> getRegimen() throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<RegimenJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM REGIMEN");
			
			while (rs.next()){
				RegimenJDBC dato = new RegimenJDBC();
				dato.setId(rs.getInt("ID_REGIMEN"));
				dato.setNombre(rs.getString("NOMBRE"));
				lista.add(dato);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static void insertActivo(ActivoJDBC activo) throws SQLException {
		Connection con = null;
	
	
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			String query =  "INSERT INTO ACTIVOS(ID_ACTIVO, ID_PROPIETARIO,ID_FABRICANTE,ID_GRUPO, ID_VALORACION, ID_MODELO, " +
		               "ID_GARANTIA, VALOR_COMPRA, ID_VALORACION_RECOMENDADA, TERCEROS, FECHA_ALTA, FECHA_REPOSICION, FECHA_ULT_MOD, " +
		               "ID_TIPO, NOMBRE_ACTIVO, SECTOR, AREA, TRAMO, ID_ELEMENTO, DENOMINACION, ID_ESTADO, " +
		               "ID_REGIMEN, FECHA_COMPRA, ID_SEGURO) " +
		               "VALUES ((SELECT MAX(ID_ACTIVO)+1 FROM ACTIVOS)," +
		               activo.getIdPropietarios() + "," + activo.getIdFabricante() + "," + activo.getIdGrupo() +  ","  +
		               activo.getIdValoracion() + "," + activo.getIdModelo() + "," + activo.getIdGarantia()  +  ","  +
		               activo.getValorCompra().replace(',','.') + ", 1 , " + activo.getTerceros()+ ", SYSDATE, '', '' , " +
		               activo.getIdTipo() + ",'" +  activo.getNombreActivo() + "'," + 
		               activo.getIdSector() + "," + activo.getIdArea() + ",'" + activo.getIdTramo() + "','" + 
		               activo.getIdElemento() + "','" + activo.getDenominacion() + "', 1 ," + 
		               activo.getIdRegimen() + ",'" + activo.getFechaCompra() + "'," + activo.getIdSeguro() + ")";
			
			//System.out.println(query);
			
			stmt.executeQuery( query);
		
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
	}
	
	public static List<UsuarioJDBC> getUsuarios() throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<UsuarioJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM USUARIOS");
			
			while (rs.next()){
				UsuarioJDBC datoUsr = new UsuarioJDBC();
				datoUsr.setId(rs.getInt("ID_USUARIO"));
				datoUsr.setUsuario(rs.getString("NOMBRE_USUARIO"));
				datoUsr.setPsw(rs.getString("PSW_USUARIO"));
				datoUsr.setNombre(rs.getString("NOMBRE"));
				datoUsr.setApe1(rs.getString("APE1"));
				datoUsr.setApe2(rs.getString("APE2"));
				datoUsr.setTelefono(rs.getString("TELEFONO"));
				datoUsr.setEmail(rs.getString("EMAIL"));
				datoUsr.setPerfil(rs.getString("PERFIL"));
				
				lista.add(datoUsr);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static UsuarioJDBC getUsuarioById(int idUsuario) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		UsuarioJDBC datoUsr = new UsuarioJDBC();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("SELECT * FROM USUARIOS WHERE ID_USUARIO ="+idUsuario);
			
			while (rs.next()){
				datoUsr.setUsuario(rs.getString("NOMBRE_USUARIO"));
				datoUsr.setPsw(rs.getString("PSW_USUARIO"));
				datoUsr.setNombre(rs.getString("NOMBRE"));
				datoUsr.setApe1(rs.getString("APE1"));
				datoUsr.setApe2(rs.getString("APE2"));
				datoUsr.setTelefono(rs.getString("TELEFONO"));
				datoUsr.setEmail(rs.getString("EMAIL"));
				datoUsr.setPerfil(rs.getString("PERFIL"));
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return datoUsr;
	}
	
	public static UsuarioJDBC getUsuarioByUsr_Psw(String user, String psw) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		UsuarioJDBC datoUsr = null;
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			String query = "SELECT PERFIL FROM USUARIOS WHERE NOMBRE_USUARIO = '"+user+"' AND PSW_USUARIO = '"+psw+"' ";
			
			rs = stmt.executeQuery(query);
			
			while (rs.next()){
				datoUsr = new UsuarioJDBC();
				datoUsr.setPerfil(rs.getString("PERFIL"));
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return datoUsr;
	}
	
	public static Boolean updatePerfilUsuario(int id, String perfil) throws SQLException {
		Connection con = null;
		Boolean ok = false;
		try
		{
			
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			stmt.executeQuery("UPDATE USUARIOS SET PERFIL = '"+perfil+"' WHERE ID_USUARIO = "+ id);
			ok= true;
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return ok;
	}
	
	public static ActivoJDBC getHCAById(String id) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		ActivoJDBC activo = null;
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("select a.valor_compra, a.fecha_alta, m.vidautil from activos a, modelos m where m.id_modelo = a.id_modelo and a.id_activo = "+ id);
			
			while (rs.next()){
				activo = new ActivoJDBC();
				activo.setValorCompra(rs.getString("VALOR_COMPRA"));
				activo.setFechaAlta(rs.getString("FECHA_ALTA"));
				activo.setVidaUtil(rs.getString("VIDAUTIL"));
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return activo;
	}
	
	public static ActivoJDBC getCCAById(String id, String idModelo) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		ActivoJDBC activo = null;
		String query = "";
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			
			if(idModelo.equals("8"))
				query = "select a.fecha_alta, dea.VALOR_REPOSICION, m.vidautil "+
						"from activos a, descripcion_elemento_area dea, modelos m where a.id_activo = "+id+
						" and a.id_modelo = m.id_modelo and dea.id_modelo = a.id_modelo ";
			else
				query = "select a.fecha_alta, de.VALOR_REPOSICION, m.vidautil "+
						"from activos a, descripcion_elemento de, modelos m where a.id_activo = "+ id+
						" and de.id_modelo = a.id_modelo and a.id_modelo = m.id_modelo";
			
			rs = stmt.executeQuery(query);
			
			while (rs.next()){
				activo = new ActivoJDBC();
				activo.setFechaAlta(rs.getString("FECHA_ALTA"));
				activo.setVidaUtil(rs.getString("VIDAUTIL"));
				activo.setValorReposicion(rs.getString("VALOR_REPOSICION"));
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return activo;
	}
	
	public static ActivoJDBC getVNRById(String id) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		ActivoJDBC activo = null;
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("select a.fecha_alta, a.VALOR_COMPRA, m.vidautil "+
			"from activos a, modelos m where a.id_activo = "+ id+
			" and a.id_modelo = m.id_modelo");
			
			while (rs.next()){
				activo = new ActivoJDBC();
				activo.setFechaAlta(rs.getString("FECHA_ALTA"));
				activo.setVidaUtil(rs.getString("VIDAUTIL"));
				activo.setValorCompra(rs.getString("VALOR_COMPRA"));
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return activo;
	}
	
	public static ActivoJDBC getGPLAById(String id) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		ActivoJDBC activo = null;
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			rs = stmt.executeQuery("select a.fecha_alta, a.VALOR_COMPRA, m.vidautil "+
			"from activos a, modelos m where a.id_activo = "+ id+
			" and a.id_modelo = m.id_modelo");
			
			while (rs.next()){
				activo = new ActivoJDBC();
				activo.setFechaCompra(rs.getString("FECHA_ALTA"));
				activo.setDescripcion(new DescripcionElementoJDBC());
				activo.getDescripcion().setVida_util(String.valueOf(1/(Double.valueOf(rs.getString("VIDAUTIL")))));
				activo.setValorCompra(rs.getString("VALOR_COMPRA"));
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return activo;
	}
	
// Metodo main para probar las querys	
	public static void main (String[] args){
		try {
			System.out.println("START");
			List<InventariadoJDBC> list = getInventariadoBySecAreTra(23, 2, "B");
			System.out.println(list.size());
			System.out.println("FIN");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
	}
	
	public static List<InventariadoJDBC> getInventariadoBySecAreTra(int sector, int area, String tramo) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<InventariadoJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			
			String query = ("select m.nombre as nombre_elem, count(*) numero, g.nombre as categoria, a.id_elemento, t.nombre as tipo, e.nombre as estado1 "+
			                "from activos a, grupos g, modelos m, tipo t, estado e "+
			                "where a.id_grupo = g.id_grupo "+
			                "and a.id_modelo = m.id_modelo "+
			                "and a.id_tipo = t.id_tipo "+
			                "and a.id_estado = e.id_estado " + 
			                "and sector = " +sector +
			                " and area = "+area +
			                " and tramo = '" + tramo+"' "+ 
			                "group by m.nombre, g.nombre, a.id_elemento, t.nombre, e.nombre " +
						    "order by m.nombre");
			
			
			rs = stmt.executeQuery(query);
				
			while (rs.next()){
				InventariadoJDBC inven = new InventariadoJDBC();
				inven.setNombreElem(rs.getString("NOMBRE_ELEM"));
				inven.setNumero(rs.getInt("NUMERO"));
				inven.setCategoria(rs.getString("CATEGORIA"));
				
				if (null != rs.getString("ID_ELEMENTO"))
					inven.setIdElemento(rs.getString("ID_ELEMENTO"));
				else
					inven.setIdElemento("-");
				inven.setTipo(rs.getString("TIPO"));
				inven.setEstado(rs.getString("estado1"));
				
				lista.add(inven);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static int getTotalElementosZona(int sector, int area, String tramo) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		int result = 0;
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			
			String query = ("select sum(numero) as totalElem from " +
			                "(select m.nombre as nombre_elem, count(*) numero, g.nombre as categoria, a.id_elemento, t.nombre as tipo, e.nombre as estado1 "+
			                "from activos a, grupos g, modelos m, tipo t, estado e "+
			                "where a.id_grupo = g.id_grupo "+
			                "and a.id_modelo = m.id_modelo "+
			                "and a.id_tipo = t.id_tipo "+
			                "and a.id_estado = e.id_estado " + 
			                "and sector = " +sector +
			                " and area = "+area +
			                " and tramo = '" + tramo+"' "+ 
			                "group by m.nombre, g.nombre, a.id_elemento, t.nombre, e.nombre)");
			
			rs = stmt.executeQuery(query);
				
			while (rs.next()){
				result = rs.getInt("TOTALELEM");
				
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return result;
	}
	
	public static List<ValoracionTotalJDBC> getValorTotalBySecAreTra(int sector, int area, String tramo) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		List<ValoracionTotalJDBC> lista = new ArrayList<>();
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			
			String query = ("select m.nombre as nombre_elem, count(*) as numero, sum(to_number(valor_compra,'999999.99')) as valorActual, (sum(to_number(valor_compra,'999999.99'))*5)/100 as deprec ,v.nombre as metodo  "+
			                "from activos a, modelos m, valoraciones v "+
			                "where a.id_modelo = m.id_modelo "+
			                "and a.id_valoracion = v.id_valoracion "+
			                "and sector = " +sector +
			                " and area = "+area +
			                " and tramo = '" + tramo+"' "+ 
			                "group by m.nombre, v.nombre " +
			                "order by m.nombre");
			
			rs = stmt.executeQuery(query);
				
			while (rs.next()){
				ValoracionTotalJDBC valor = new ValoracionTotalJDBC();
				valor.setNombreElem(rs.getString("NOMBRE_ELEM"));
				valor.setNumero(rs.getInt("NUMERO"));
				valor.setValorActual(rs.getDouble("VALORACTUAL"));
				valor.setDepreciacion(rs.getDouble("DEPREC"));
				valor.setMetodo(rs.getString("METODO"));
	
				if (valor.getMetodo().equals("HCA") || valor.getMetodo().equals("GPLA"))
					valor.setTipoDeprec("Lineal");
				else
					valor.setTipoDeprec("Decreciente");
				
				
				lista.add(valor);
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return lista;
	}
	
	public static double getTotalSumaValoracion(int sector, int area, String tramo) throws SQLException {
		Connection con = null;
		ResultSet rs = null;
		double result = 0;
		
		try {
			Class.forName ("oracle.jdbc.OracleDriver");
			con = DriverManager.getConnection("jdbc:oracle:thin:@//"+ip+":1521/XE","isea","isea");
			Statement stmt = con.createStatement();
			
			String query = ("select sum(to_number(valor_compra,'999999.99')) as valorTotal " +
			                "from activos a "+
			                "where sector = " +sector +
			                " and area = "+area +
			                " and tramo = '" + tramo+"' ");
			
			rs = stmt.executeQuery(query);
			
			while (rs.next()){
				result = rs.getInt("VALORTOTAL");	
			}
			
		}
		catch (SQLException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			con.close();
		}
		return result;
	}
	
}
